﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Smile.Imaging
{
    /// <summary>Values that represent images encoding format.</summary>
    public enum ImageEncodingFormat
    {
        Jpeg,
        JpegXr,
        Png
    }

    public static class ImageEncodingFormatExtensions
    {
        public static string ToFileExtension(this ImageEncodingFormat imageEncodingFormat)
        {
            switch (imageEncodingFormat)
            {
                case ImageEncodingFormat.Jpeg:
                case ImageEncodingFormat.JpegXr:
                    return ".jpeg";
                case ImageEncodingFormat.Png:
                    return ".png";
                default:
                    throw new ArgumentOutOfRangeException("imageEncodingFormat");
            }
        }

        public static string ToDisplayName(this ImageEncodingFormat imageEncodingFormat)
        {
            switch (imageEncodingFormat)
            {
                case ImageEncodingFormat.Jpeg:
                    return "JPEG";
                case ImageEncodingFormat.JpegXr:
                    return "JPEG XR";
                case ImageEncodingFormat.Png:
                    return "PNG";
                default:
                    throw new ArgumentOutOfRangeException("imageEncodingFormat");
            }
        }
    }
}
